# Makefile

SHAK = shakespe
WIKI = wiki
PALI = palindromo

SHAKSEQ = $(SHAK)-seq
SHAKMPI = $(SHAK)-mpi
SHAKOMP = $(SHAK)-omp

WIKISEQ = $(WIKI)-seq
WIKIMPI = $(WIKI)-mpi
WIKIOMP = $(WIKI)-omp


CC = gcc
MPICC = mpicc
CFLAGS = -Wall
SEQFLAGS = -lrt
MPIFLAGS = -lrt
OMPFLAGS = -fopenmp
HDIR = inc
ODIR = obj
SDIR = src


all: mpi seq omp resultados

seq: $(SHAKSEQ) $(WIKISEQ)

mpi: $(WIKIMPI) $(SHAKMPI)

omp: $(WIKIOMP) $(SHAKOMP)

resultados:
	mkdir -p resultados

$(SHAKSEQ): $(SDIR)/$(SHAKSEQ).c $(ODIR)/$(PALI).o
	$(CC) $(CFLAGS) -I$(HDIR) $(dflag) $(SEQFLAGS) -o $@ $^

$(WIKISEQ): $(SDIR)/$(WIKISEQ).c $(ODIR)/$(PALI).o
	$(CC) $(CFLAGS) -I$(HDIR) $(dflag) $(SEQFLAGS) -o $@ $^

$(WIKIMPI): $(SDIR)/$(WIKIMPI).c $(ODIR)/$(PALI).o
	$(MPICC) $(CFLAGS) -I$(HDIR) $(dbuff) $(MPIFLAGS) -o $@ $^

$(SHAKMPI): $(SDIR)/$(SHAKMPI).c $(ODIR)/$(PALI).o
	$(MPICC) $(CFLAGS) -I$(HDIR) $(dbuff) $(MPIFLAGS) -o $@ $^

$(WIKIOMP): $(SDIR)/$(WIKIOMP).c $(ODIR)/$(PALI).o
	$(CC) $(CFLAGS) -I$(HDIR) $(tbloco) $(nthreads) $(OMPFLAGS) -o $@ $^

$(SHAKOMP): $(SDIR)/$(SHAKOMP).c $(ODIR)/$(PALI).o
	$(CC) $(CFLAGS) -I$(HDIR) $(tbloco) $(nthreads) $(OMPFLAGS) -o $@ $^

$(ODIR)/$(PALI).o: $(SDIR)/$(PALI).c $(ODIR)
	$(CC) $(CFLAGS) -I$(HDIR) -o $@ -c $<

$(ODIR):
	mkdir -p $@

clean:
	rm -rf $(ODIR)/*.o *-seq *-mpi *-omp $(PTH) resultados
